みかん本: アドレスとポインタ
code:cpp
using namespace std;
int main(void) {
int i = 42;
int* p = &i;
cout << 'i' << '\n';
cout << i << '\n'; // 42
cout << 'p' << '\n';
cout << p << '\n'; // i のアドレス
int r1 = *p;
cout << "r1" << '\n';
cout << r1 << '\n'; // 42 (i の現在の値をデリファレンスして取得)
*p = 1;
cout << 'p' << '\n';
cout << p << '\n'; // i のアドレス(変更なし)
int r2 = i;
cout << "r2" << '\n';
cout << r2 << '\n'; // 1 (i の値が *p = 1 で変更されたため)
uintptr_t addr = reinterpret_cast<uintptr_t>(p);
cout << "addr" << '\n';
cout << addr << '\n'; // p のアドレス値を整数として表示
int* q = reinterpret_cast<int*>(addr);
cout << 'q' << '\n';
cout << q << '\n'; // p と同じアドレス(i のアドレス)
}